import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
import { Profile } from '@/types/member'

export const useMemeberStore = defineStore(
  'member',
  () => {
    // 定义模型数据
    const profile = ref({} as Profile)

    // 保存用户信息到pinia中
    const setProfile = (value: Profile) => {
      profile.value = value
    }

    // const isLogin = computed(() => Boolean(profile.value.token))
    const isLogin = computed(() => !!profile.value.token)

    return {
      profile,
      setProfile,
      isLogin
    }
  },
  {
    // persist: true // 这种写法小程序端行不通，因为小程序的本地存储api不同，默认是浏览器的localStorage
    persist: {
      // storage: localStorage // 这个是它的默认实现，不能这么用，因为这是小程序，不是浏览器
      storage: {
        // 小程序本地存储实现
        setItem (key, value) {
          uni.setStorageSync(key, value)
        },
        getItem (key) {
          return uni.getStorageSync(key)
        }
      }
    }
  }
)
